package com.gather.hashmaps;

import com.gather.orm.Car;

import java.util.HashMap;
import java.util.Set;

public class Example03 {
    public static void main(String[] args) {
        HashMap<Car, String> carStringHashMap = new HashMap<>();
        // 添加元素
        Car car1 = new Car("丰田",19.1);
        Car car2 = new Car("大众",16.1);
        Car car3 = new Car("日产",12.1);

        carStringHashMap.put(car1,"日本");
        carStringHashMap.put(car2,"美国");
        carStringHashMap.put(car3,"德国");
        // 无法添加重复元素
        //carStringHashMap.put(car3,"韩国");
        // 但是这样添加可以 -- 因为对象地址不一样
        carStringHashMap.put(new Car("日产",12.1),"德国");
        System.out.println("元素个数："+carStringHashMap.size());// 3 - 4
        System.out.println(carStringHashMap);// {大众:16.1=美国, 日产:12.1=德国, 丰田:19.1=日本}
        // 当我们想要名字一样的时候，不能加进来（去重），应该怎么做呢？
        // 使用 hashcode 和 equals() 比较 这个时候就没有办法添加了

        carStringHashMap.containsKey(new Car("日产",12.1));
        carStringHashMap.remove(new Car("日产",12.1));
        System.out.println("---------");
        // 迭代器
        Set<Car> cars = carStringHashMap.keySet();
        for (Car car : cars) {
            System.out.println(car);
            System.out.println(carStringHashMap.get(car));
        }
    }
}
